package leetcode.easy.q136;

import leetcode.util.Utils;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Q {
    public static void main(String[] args) {
        log.info("{}", Utils.toArray(2,2,1));
    }
}

/**
 * 线性复杂度:
 * 不耗费额外空间
 * 利用异或性质：相同为0不同为1使得任何数与0异或都等于原来的数，相同的数异或得0
 */
class Solution {
    public int singleNumber(int[] nums) {
        int result = nums[0];
        for (int i = 1; i < nums.length; i++) {
            result ^= nums[i];
        }
        return result;
    }
}